|
|
Mid-week abstract anyone?
Just a small test, which uses a few techniques which perhaps might be of
interest for some?
First, it's a simple way of randomly placing a lot of objects without them
intersecting. The code should speak for itself, but I don't know if this method
is entirely bulletproof?
Second, I wanted to use an image I did with apophysis (
http://www.apophysis.org/ ). The resolution was a bit too low though, and I
lost the settings to remake it. So I blurred it by averaging the image several
times in a while loop. I've blurred procedural textures this way before, but it
works quite well with image_maps also.
I'd love to see some "remixes" of this scene! The source is below, and I can
post the background image if anyone's interested.
(Pinnedyr means phasmatodea/walking sticks in Norwegian).
-Peter
// +w1920 +h1200 +a0.3
// +w1920 +h400 +a0.3
camera{
ultra_wide_angle
location <1,3,-5>*0.3 look_at y*1 angle 130
sky vrotate (<0,1,0>,z*40)
translate <-1,-0.5,-1>
right x*image_width/image_height
up y
}
light_source{<5,15,-10>1}
#local TO = plane{y,0} // Trace Object
#local Radius = 0.025; // Radius of cylinders
#local S = seed(1337);
#local X = 0;
#while (X<1)
#local Shoot_Start =
vrotate(<1-rand(S)*0.5,3+sin(X*4*pi)*0.1+rand(S)*0.2,0>,y*360*rand(S));
#local Shoot_Direction =
vrotate(<-Shoot_Start.x+rand(S)*0.1,-1.3-rand(S)*0.5,-Shoot_Start.z+rand(S)*0.1>,y*10*rand(S));
#local Shoot_End = trace(TO,Shoot_Start,Shoot_Direction);
#if(Shoot_End.y=0) // If it hits the plane in TO
#ifndef(OBJ) // Final OBJect
#local OBJ = merge{
#else
#local OBJ = merge{object{OBJ}
#end
cylinder{Shoot_Start,Shoot_End,Radius}
sphere{Shoot_Start,Radius}
sphere{Shoot_End,Radius}
}
#local TO =
union{
object{TO}
cylinder{Shoot_Start,Shoot_End,Radius*2} // Radius
doubled to avoid collision
}
#end
#local X = X+0.001; // Decrease to shoot more cylinders
#end
object{OBJ
texture{
pigment {rgb 0.9 filter 0.9}
finish{reflection {0.2,0.6} ambient 0.1 specular 0.4 phong 0.3
irid{0.25 thickness 1}}
}
interior{ior 1.255 fade_color x*2 fade_power 2}
}
#local AP = 0.05; // increase/decrease to blur less/more
// These settings worked well for my 1920x1200 image_map
sky_sphere{
pigment{
average
pigment_map{
#local X = 0;
#while (X<1)
[AP+X*AP, image_map{png
"Apophysis-081026-214_1000.png" interpolate 2 map_type 1}rotate y*(35+1*X)]
#local X = X+AP;
#end
}
}
}
Post a reply to this message
Attachments:
Download 'pinnedyr_01.jpg' (129 KB)
Preview of image 'pinnedyr_01.jpg'
|
|